/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package mx.itschapala.dsw2.vista;

import java.util.ArrayList;
import java.util.List;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.event.ActionEvent;
import mx.itschapala.dsw2.biblioteca8a.bl.LibroBlLocal;
import mx.itschapala.dsw2.biblioteca8a.bl.PrestamoBlLocal;
import mx.itschapala.dsw2.biblioteca8a.bl.UsuarioBlLocal;
import mx.itschapala.dsw2.biblioteca8a.modelo.Libro;
import mx.itschapala.dsw2.biblioteca8a.modelo.Prestamo;
import mx.itschapala.dsw2.biblioteca8a.modelo.Usuario;

/**
 *
 * @author MAQ1
 */
@ManagedBean
@SessionScoped
public class PrestarBean {
   
    
    //---------------EJB'S-------------------------
    @EJB
    private PrestamoBlLocal prestamoBl;
    @EJB
    private UsuarioBlLocal usuarioBl;
     @EJB
    private LibroBlLocal libroBl;
    
    //------------------variables(propiedades)--------------
    private List<Libro> librosLista;///// lista de libros nuevos
    private List<Prestamo> lprestamo;
    private List<Usuario> listaUsuario;
    private Prestamo loan ;
    private Usuario usuario;
    private String accion;
    private String codigoLibro;
    private int idUsuarioSeleccionado;
//-----------constructor--------------------------------
        
    public PrestarBean() {
        loan=new Prestamo();
        librosLista=new ArrayList<Libro>();
    }
    //-----------metodos GET y SET--------------------------------    

   
    public Prestamo getLoan() {
        return loan;
    }

    public void setLoan(Prestamo loan) {
        this.loan = loan;
    }

    public List<Libro> getLibrosLista() {
        
        return librosLista;
    }

    public Usuario getUsuario() {
        return usuario;
    }

    public void setUsuario(Usuario usuario) {
        this.usuario = usuario;
    }

    public List<Prestamo> getLprestamo() {
        lprestamo=prestamoBl.getAll();
        return lprestamo;
    }

    public List<Usuario> getListaUsuario() {
        listaUsuario=usuarioBl.getAll();
        return listaUsuario;
    }

    public String getCodigoLibro() {
        return codigoLibro;
    }

    public void setCodigoLibro(String codigoLibro) {
        this.codigoLibro = codigoLibro;
    }

    public int getIdUsuarioSeleccionado() {
        return idUsuarioSeleccionado;
    }

    public void setIdUsuarioSeleccionado(int idUsuarioSeleccionado) {
        this.idUsuarioSeleccionado = idUsuarioSeleccionado;
    }
    
    
    
    //-----------Acciones--------------------------------    
    public String procesarAccion() {
       prestamoBl.lendBooks(loan.getIdusuario(),librosLista);
       
       //        accion="";
        return "PrestamoVista";
    }
    
    //-----------Listeners--------------------------------    
    public void prepararNuevo(ActionEvent evt){//accionEvent de faces
        loan=new Prestamo();
        librosLista=new ArrayList<Libro>();
        accion="Nuevo";
    }
    
    public void prepararEditar(ActionEvent evt){
        System.out.println(evt.getComponent().getClientId());
        String arr[]=evt.getComponent().getClientId().split(":");
        String num=arr[3];
        int index=Integer.parseInt(num);
        System.out.println("el numero es: "+index);
       // loan=lista.get(index);
        
        accion="Editar";
    }
    public void prepararEliminar(ActionEvent evt){
        String arr[]=evt.getComponent().getClientId().split(":");
        String num=arr[3];
        int index=Integer.parseInt(num);
        librosLista.remove(index);
        //accion="Eliminar";
    }
    public void eliminar(ActionEvent evt){
        String arr[]=evt.getComponent().getClientId().split(":");
        String num=arr[2];
        int index=Integer.parseInt(num);
        librosLista.remove(index);
        //accion="Eliminar";
    }
    public void agregarLibro(ActionEvent evt){
        Libro l=libroBl.findByClaveForLend(codigoLibro);
        if(l!=null){
            librosLista.add(l);
        }
    }
    public String procesarSeleccion(){
        loan.setIdusuario(usuarioBl.findById(idUsuarioSeleccionado));
        return "PrestamoConfirmar";
    }
}
